var editRow = undefined;
var rowEditor = undefined;
$(function ()
{
    var authorityString=getAuthorityByMenuName("角色管理");
    //根据权限设置按钮的显示和隐藏---custom_Common.js
    IsNoneOrBlock(authorityString,"Role");

    var datagrid1 = $("#dg").datagrid(
        {
            url : "../../api/nj_getAllRoleInfoBypage", //加载的URL
            method : "get",
            isField : "roleid",
            singleSelect : true,
            //  toolbar:"#toolBar",
            pagination : true, //显示分页
            pageSize : 15, //分页大小
            pageList : [15, 20, 25, 30], //每页的个数
            beforePageText : '第', //页数文本框前显示的汉字
            afterPageText : '页    共 {pages} 页',
            displayMsg : '当前显示 {from} - {to} 条记录   共 {total} 条记录',
            fit : true, //自动补全
            fitColumns : true,
            rownumbers: true,//显示序号
            title : "角色管理",
            columns : [[//每个列具体内容
                    {
                        field : 'rolecode',
                        title : '角色编码',
                        width : 100,
                        sortable : true
                    },
                    {
                        field : 'rolename',
                        title : '角色名称',
                        width : 100
                        
                    },
                    {
                        field : 'adduser',
                        title : '添加人',
                        width : 100,
                        editor :
                        {
                            type : 'combobox',
                            options :
                            {
                                method : 'get',
                                url : '../../api/nj_getAllUserInfo',
                                valueField : "realname",
                                textField : "realname",
                                required : true
                            }
                        }
                    },
              
                    {
                        field : 'addtime',
                        title : '添加时间',
                        width : 100,
                        formatter:function(val,row){
                            var now = new Date(val);
                            return now.format("yyyy-MM-dd hh:mm:ss");
                        }
                    }
                ]],

            toolbar : [//工具条
                {
                    text : "增加",
                    iconCls : "icon-add",
                    handler : function ()
                    { //回调函数
                        if (rowEditor == undefined)
                        {
                            datagrid1.datagrid('insertRow',
                            { //如果处于未被点击状态，在第一行开启编辑
                                index : 0,
                                row :
                                {
                                    'adduser' : realname, //点击增加时，adduser读取当前登录的用户的名字
                                    'addtime' : "${notices.release_time}"
                                }
                            }
                            );
                            rowEditor = 0;
                            datagrid1.datagrid('beginEdit', rowEditor); //没有这行，即使开启了也不编辑

                        }

                    }
                },
                {
                    text : "删除",
                    iconCls : "icon-remove",
                    handler : function ()
                    {
                        var rows = datagrid1.datagrid('getSelections');

                        if (rows.length <= 0)
                        {
                            $.messager.alert('警告', '您没有选择', 'error');
                        }
                        else if (rows.length > 1)
                        {
                            $.messager.alert('警告', '不支持批量删除', 'error');
                        }
                        else
                        {
                            $.messager.confirm('确定', '您确定要删除吗', function (t)
                            {
                                if (t)
                                {

                                    $.ajax(
                                    {
                                        url : '../../api/nj_deleteRoleInfo',
                                        data : rows[0],
                                        dataType : 'json',
                                        success : function (r)
                                        {
                                            if (r == 1)
                                            {
                                                datagrid1.datagrid('reload');
                                            }
                                            else
                                            {
                                                $.messager.alert('错误', "删除失败", 'error');
                                            }
                                            datagrid1.datagrid('unselectAll');
                                        }
                                    }
                                    );

                                }
                            }
                            )
                        }

                    }
                },
                {
                    text : "修改",
                    iconCls : "icon-edit",
                    handler : function ()
                    {
                        var rows = datagrid1.datagrid('getSelections');
                        if (rows.length == 1)
                        {
                            if (rowEditor == undefined)
                            {
                                var index = datagrid1.datagrid('getRowIndex', rows[0]);
                                rowEditor = index;
                                datagrid1.datagrid('unselectAll');
                                datagrid1.datagrid('beginEdit', index);

                            }
                        }
                    }
                },
                {
                    text : "保存",
                    iconCls : "icon-save",
                    handler : function ()
                    {
                        datagrid1.datagrid('endEdit', rowEditor);
                        rowEditor = undefined;
                    }
                },
                {
                    text : "取消编辑",
                    iconCls : "icon-redo",
                    handler : function ()
                    {
                        rowEditor = undefined;
                        datagrid1.datagrid('rejectChanges')
                    }
                }
            ],

            onAfterEdit : function (rowIndex, rowData, changes)
            {
                var inserted = datagrid1.datagrid('getChanges', 'inserted');
                var updated = datagrid1.datagrid('getChanges', 'updated');
                if (inserted.length < 1 && updated.length < 1)
                {
                    editRow = undefined;
                    datagrid1.datagrid('unselectAll');
                    return;
                }

                var url = '';

                if (inserted.length > 0)
                {
                    url = '../../api/nj_saveRoleInfo';
                }

                if (updated.length > 0)
                {
                    url = '../../api/nj_updateRoleInfo';
                }
                $.ajax(
                {
                    url : url,
                    data : {
                        addtime:rowData.addtime,
                        adduser:rowData.adduser,
                        rolename:rowData.rolename

                    },
                    dataType : 'json',
                    success : function (r)
                    {

                        if (r == 1)
                        {
                            //提交所有修改的数据，提交后的数据将不能再修改或者回滚。
                            datagrid1.datagrid('acceptChanges');
                            editRow = undefined;
                            datagrid1.datagrid('reload');
                        }
                        else if (r == 2)
                        {
                            datagrid1.datagrid('acceptChanges');
                            editRow = undefined;
                            //datagrid1.datagrid('reload',);
                            $.messager.alert('警告', '角色名称已存在！', '角色名称已存在！');
                            datagrid1.datagrid('reload', '../../api/getAllRoleInfoBypageClient');
                        }
                        else
                        {
                            datagrid1.datagrid('beginEdit', editRow);
                            $.messager.alert('错误', '角色操作失败！', '角色操作失败！');
                        }
                        datagrid1.datagrid('unselectAll');
                    }
                }
                );
            }
        }
        );
}
)
